package com.csap.framework.apidoc.properties;

import lombok.Data;

import java.util.Arrays;
import java.util.List;

/**
 * @author yangchengfu
 * @description 分页相关参数配置
 * @dataTime 2020年-03月-11日 15:06:00
 **/
@Data
public class PageConfig {
    /**
     * 请求（默认有页数和排序字段，匹配的方法）
     */
    private List<String> pageMatchMethod = Arrays.asList("Page");
    /**
     * 返回 带有ResponseManagerModel 总条数，总页数 等数据
     */
    private List<String> resultPageMatchMethod = Arrays.asList("Page");
    /**
     * 请求包含的忽略字段【必须存在的字段】
     */
    private List<String> pageField = Arrays.asList("size", "current", "column", "asc");
    /**
     * 返回包含的忽略字段【必须存在的字段】
     */
    private List<String> resultField = Arrays.asList("rows", "total", "totalPage", "currentPage", "pageSize");
    /**
     * 返回公用过滤字段【必须不存在的字段】
     */
    private List<String> resultExcludes = Arrays.asList("pages", "records", "searchCount", "total","orders");

    public boolean containsPageMethod(String method) {
        return pageMatchMethod.stream().anyMatch(str -> method.contains(str));
    }

    public boolean containsResultPageMethod(String method) {
        return resultPageMatchMethod.stream().anyMatch(str -> method.contains(str));
    }
}
